<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">











<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>NPanday - Supported Directory Structures</title>
    <style type="text/css" media="all">
      @import url("../../css/maven-base.css");
      @import url("../../css/maven-theme.css");
      @import url("../../css/site.css");
    </style>
    <link rel="stylesheet" href="../../css/print.css" type="text/css" media="print" />
          </head>
  <body class="composite">
    <div id="banner">
                  <a href="" id="bannerLeft">
    
                                            <img src="../.././images/NPanday.png" alt="" />
    
            </a>
                        <a href="http://www.codeplex.com/" id="bannerRight">
    
                                            <img src="../.././images/logo-home.png" alt="" />
    
            </a>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
          
  

  
    
            
  
    
            <div class="xleft">
          
                <a href="http://npanday.codeplex.com/" class="externalLink">NPanday Home</a>
                &gt;
      
                <a href="../../">NPanday 1.2</a>
                  </div>
            <div class="xright">      
  

  
    
            
  
    
             Last Published: 22 Jun 2010
              &nbsp;| Version: 1.2
            </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
           
  

  
    
            
  
    
                   <h5>General Info</h5>
            <ul>
              
    <li class="none">
                    <a href="../../index.html">NPanday Overview</a>
          </li>
              
    <li class="none">
                    <a href="../../release-notes.html">NPanday Release Notes</a>
          </li>
              
    <li class="none">
                    <a href="../../faqs.html">NPanday FAQs</a>
          </li>
              
    <li class="none">
                    <a href="../../faqs.html">NPanday Features</a>
          </li>
              
    <li class="none">
                    <a href="../../npanday.pdf">Documentation PDF</a>
          </li>
          </ul>
              <h5>User's Guide</h5>
            <ul>
              
    <li class="none">
                    <a href="../.././guide/index.html">Introduction</a>
          </li>
              
    <li class="none">
                    <a href="../.././guide/installation/index.html">Installation</a>
          </li>
              
    <li class="none">
                    <a href="../.././guide/vs/index.html">Visual Studio Add-in</a>
          </li>
              
    <li class="none">
                    <a href="../.././guide/maven/index.html">Maven Command Line</a>
          </li>
              
    <li class="none">
                    <a href="../.././guide/devinfra/index.html">Maven Development Infrastructure</a>
          </li>
              
    <li class="none">
                    <a href="../../plugins/index.html">NPanday Plugins</a>
          </li>
          </ul>
              <h5>Contributing</h5>
            <ul>
              
    <li class="none">
                    <a href="../.././developers/index.html">Developer's Guide</a>
          </li>
              
    <li class="none">
                    <a href="../.././issue-tracking.html">Issue Tracking</a>
          </li>
              
    <li class="none">
                    <a href="../.././mail-lists.html">Mailing Lists</a>
          </li>
          </ul>
              <h5>Project Documentation</h5>
            <ul>
              
                
              
      
            
      
            
      
            
      
            
      
            
      
            
      
              
        <li class="collapsed">
                    <a href="../../project-info.html">Project Information</a>
                </li>
          </ul>
              <h5>Resources</h5>
            <ul>
              
    <li class="none">
                    <a href="http://maven.apache.org/" class="externalLink">Apache Maven</a>
          </li>
              
    <li class="none">
                    <a href="http://npanday.codeplex.com/" class="externalLink">NPanday on CodePlex</a>
          </li>
          </ul>
                                           <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
            <img alt="Built by Maven" src="../../images/logos/maven-feather.png"></img>
          </a>
                       
  

  
    
            
  
    
        </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        <div class="section"><h2>Supported Directory Structures</h2>
<p>The following directory structures are supported by NPanday's Visual Studio integration. Note that using the bare Maven plugins you can support any directory structure, but it may require manual configuration of various plugin fields.</p>
<div class="section"><h3>Multi-module Projects</h3>
<p>Multi-module project with a parent POM containing one or more modules, then a subdirectory for each module, which equates to a VS &quot;project&quot;. The <tt>.sln</tt> file sits beside the parent POM, and each subdirectory contains a <tt>.csproj</tt>, <tt>pom.xml</tt> and source code. Source code is not typically put in a subdirectory under the module, but it might be. NUnit test code may be within each module in a directory named &quot;Tests&quot;, or it may be in a separate module.</p>
<div class="source"><pre>MySolution/
|-- MyClassLibrary/
|   |-- Properties/
|   |   `-- AssemblyInfo.cs
|   |-- Class1.cs
|   |-- MyClassLibrary.csproj
|   `-- pom.xml
|-- MyClassLibraryTest/
|   |-- Properties/
|   |   `-- AssemblyInfo.cs
|   |-- MyAppTest.cs
|   |-- MyClassLibraryTest.csproj
|   `-- pom.xml
|-- MyConsoleApplication/
|   |-- Properties/
|   |   `-- AssemblyInfo.cs
|   |-- MyConsoleApplication.csproj
|   |-- Program.cs
|   `-- pom.xml
|-- MySolution.sln
`-- pom.xml</pre>
</div>
</div>
<div class="section"><h3>Flat Single Module Project</h3>
<p>Flat structure with <tt>pom.xml</tt>, <tt>.sln</tt>, <tt>.csproj</tt> and source code all in the same directory. Source code is not typically put in a subdirectory under the module, but it might be. If present, NUnit test code should be in a directory named &quot;Tests&quot;, which is not packaged in the main artifact. See note below about &quot;nested&quot; projects. The &quot;flat&quot; structure is only supported as a single project with no sub-modules, for projects of type <tt>library</tt> (DLL) and <tt>exe</tt>.</p>
<div class="source"><pre>FlatSingleModule/
|-- Properties/
|   `-- AssemblyInfo.cs
|-- Class1.cs
|-- FlatSingleModule.csproj
|-- FlatSingleModule.sln
`-- pom.xml</pre>
</div>
</div>
<div class="section"><h3>Visual Studio Web Site Project</h3>
<p>Visual Studio &quot;Web Site&quot; (File -&gt; New -&gt; Web Site) project with <tt>.sln</tt> file copied into the project directory and modified to normalize paths. NPanday will build a zip file containing the aspx files and compiled dlls (in a bin/ directory). Note: There is an issue with building this type of project twice in a row: you must 'clean' before building again.</p>
<div class="source"><pre>MyWebSite
|-- App_Data/
|-- Default.aspx
|-- Default.aspx.cs
|-- MyWebSite.sln
`-- pom.xml</pre>
</div>
</div>
<div class="section"><h3>Visual Studio ASP.NET Web Application</h3>
<p>Visual Studio &quot;ASP.NET Web Application&quot; (File -&gt; New -&gt; Project, &quot;ASP.NET Web Application&quot;). Structure is similar to a multi-module project with a parent POM and <tt>.sln</tt> file at the top, plus a subdirectory for each project/module. NPanday should build a .zip file as in the previous web site example containing pages and dlls.</p>
<div class="source"><pre>MyProject/
|-- MyWebApplication/
|   |-- Properties/
|   |   `-- AssemblyInfo.cs
|   |-- Default.aspx
|   |-- Default.aspx.cs
|   |-- Default.aspx.designer.cs
|   |-- MyWebApplication.csproj
|   |-- Web.config
|   `-- pom.xml
|-- MyProject.sln
`-- pom.xml</pre>
</div>
</div>
</div>
<div class="section"><h2>Notes</h2>
<ol type="1"><li>Some versions of NPanday have limited support for a &quot;nested&quot; project-within-project structure with source code in the parent directory. This structure will have a <tt>.sln</tt> <i>and</i> <tt>.vbproj</tt> file at the top, then directories for additional modules beneath, each containing a <tt>.vbproj</tt> file. This structure is <b>not recommended</b> and not likely to be fully supported by Maven tools such as the Release plugin</li>
<li>In the examples, <tt>.vbproj</tt> and <tt>.csproj</tt> are interchangeable, each structure should work for any language, and a solution may be composed of different modules using different languages. In addition, tests within a module may be written in a different language than the main artifact</li>
<li>The Visual Studio integration uses the project directory as the main directory for source code. However, NPanday archetypes will generate projects using the more Maven-like convention of <tt>src/main/csharp</tt>, etc.</li>
</ol>
</div>

      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">&#169;  
          2010
    
          NPanday
          
  

  
    
            
  
    
  </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
